package com.vates.curso.service;

import java.io.Serializable;
import java.util.List;

import com.vates.curso.dao.GenericDao;

public interface BaseObjectService<T, PK extends Serializable> extends
		BaseService {
	/**
	 * Save.
	 * 
	 * @param entity
	 *            the entity
	 */
	void save(T entity);

	/**
	 * Delete.
	 * 
	 * @param entity
	 *            the entity
	 */
	void delete(T entity);

	/**
	 * Update.
	 * 
	 * @param entity
	 *            the entity
	 */
	void update(T entity);

	/**
	 * Gets the.
	 * 
	 * @param id
	 *            the id
	 * @return the t
	 */
	T get(PK id);

	/**
	 * Gets the all.
	 * 
	 * @return the all
	 */
	List<T> getAll();

	/**
	 * Gets the entity dao.
	 * 
	 * @return the entity dao
	 */
	GenericDao<T, PK> getEntityDao();
}
